Pinable and actionable navigation breadcrumbs

ABSTRACT

A method implemented by a computer. The method includes displaying, on a tangible display device, a pinboard including a first breadcrumb on a first area of the display device, wherein the breadcrumb points to first data. The method also includes displaying, on a second area of the tangible display device different than the first area, a plurality of categories of information regarding the first data. The method also includes responsive to selecting a first category of the plurality of categories, performing both of: displaying details regarding the first category in a third area of the tangible display device different than the first area and the second area, as well as updating the breadcrumb to point to second data relating to the first category, whereby faster operation of the computer is enabled by avoidance of intervening user actions.

This application is related to ES2015028-1, filed Sep. 10, 2015.

BACKGROUND INFORMATION

1. Field

The present disclosure relates to methods and devices for creatingspecial purpose computers whose hardware and programming enable dynamicand efficient data retrieval when navigating hyperlinks.

2. Background

Breadcrumbs are a navigation aid used in user interfaces. Breadcrumbsallow users to keep track of their locations within programs ordocuments. In the case of a Web browser, for instance, breadcrumbs arenavigation shortcuts of prior websites a user visited. In this case,breadcrumbs may appear as icons on a ribbon located within the browserwindow. A user may return to a previously visited website by clicking onone of these icons, also known as breadcrumbs. However, breadcrumbs arenot limited to Web browsing, and may be present in the user interfacesof other types programs and, perhaps, also in documents.

SUMMARY

The illustrative embodiments provide for a method implemented by acomputer. The method includes displaying, on a tangible display device,a pinboard including a first breadcrumb; receiving input from a user,via a tangible user input device, commanding that an action be takenwith respect to the breadcrumb, the action being other than navigatingto where the breadcrumb points; and performing the action, wherein theaction enables faster operation of the computer by avoidance ofintervening user actions.

The illustrative embodiments also provide for a computer. The computerincludes a processor, a non-transitory computer readable storage mediumin communication with the processor, a display device in communicationwith the processor, a tangible user input device in communication withthe processor, and electronics in communication with the processor. Theelectronics are physically configured to order the processor to display,on a tangible display device, a pinboard including a first breadcrumb,receive input from a user via the tangible user input device thatcommands that an action be taken with respect to the breadcrumb, withthe action being other than navigating to where the breadcrumb points,and perform the action, wherein the action enables faster operation ofthe computer by avoidance of intervening user actions.

The illustrative embodiments also provide for a non-transitory computerreadable storage medium storing computer usable program code which, whenexecuted by a processor, performs a method implemented by a computer.The computer usable program code includes computer usable program codefor displaying, on a tangible display device, a pinboard including afirst breadcrumb. The computer usable program code also includescomputer usable program code for receiving input from a user, via atangible user input device, commanding that an action be taken withrespect to the breadcrumb, the action being other than navigating towhere the breadcrumb points. The computer usable program code alsoincludes computer usable program code for performing the action. Theaction enables faster operation of the computer by avoidance ofintervening user actions.

The illustrative embodiments also provide for a method implemented by acomputer. The method includes displaying, on a tangible display device,a pinboard including a first breadcrumb on a first area of the displaydevice, wherein the breadcrumb points to first data. The method alsoincludes displaying, on a second area of the tangible display devicedifferent than the first area, a plurality of categories of informationregarding the first data. The method also includes responsive toselecting a first category of the plurality of categories, performingboth of: displaying details regarding the first category in a third areaof the tangible display device different than the first area and thesecond area, as well as updating the breadcrumb to point to second datarelating to the first category, whereby faster operation of the computeris enabled by avoidance of intervening user actions.

The illustrative embodiments also provide for a computer. The computerincludes a processor, a bus in communication with the processor, atangible display device in communication with the processor, and anon-transitory computer readable storage medium in communication withthe processor. The non-transitory computer readable storage mediumstores program code which, when executed by the processor, performs amethod and changes the non-transitory computer readable storage mediumand the tangible display device. The program code includes program codefor displaying, on the tangible display device, a pinboard including afirst breadcrumb on a first area of the display device, wherein thebreadcrumb points to first data. The program code also includes programcode for displaying, on a second area of the tangible display devicedifferent than the first area, a plurality of categories of informationregarding the first data. The program code also includes program codefor, responsive to selecting a first category of the plurality ofcategories, performing both of: displaying details regarding the firstcategory in a third area of the tangible display device different thanthe first area and the second area, as well as updating the breadcrumbto point to second data relating to the first category, whereby fasteroperation of the computer is enabled by avoidance of intervening useractions.

The illustrative embodiments also provide for a non-transitory computerreadable storage medium storing program code which, when executed by aprocessor, performs a method and changes the non-transitory computerreadable storage medium and a tangible display device. The program codeincludes program code for displaying, on the tangible display device, apinboard including a first breadcrumb on a first area of the displaydevice, wherein the breadcrumb points to first data. The program codeincludes program code for displaying, on a second area of the tangibledisplay device different than the first area, a plurality of categoriesof information regarding the first data. The program code includesprogram code for, responsive to selecting a first category of theplurality of categories, performing both of: displaying detailsregarding the first category in a third area of the tangible displaydevice different than the first area and the second area, as well asupdating the breadcrumb to point to second data relating to the firstcategory, whereby faster operation of the computer is enabled byavoidance of intervening user actions.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features believed characteristic of the illustrativeembodiments are set forth in the appended claims. The illustrativeembodiments, however, as well as a preferred mode of use, furtherobjectives and features thereof, will best be understood by reference tothe following detailed description of an illustrative embodiment of thepresent disclosure when read in conjunction with the accompanyingdrawings, wherein:

FIG. 1 is an illustration of manipulation of breadcrumbs on a pinboard,in accordance with an illustrative embodiment;

FIG. 2 is another illustration of manipulation of breadcrumbs on apinboard, in accordance with an illustrative embodiment;

FIG. 3 is another illustration of manipulation of breadcrumbs on apinboard, in accordance with an illustrative embodiment;

FIG. 4 is another illustration of manipulation of breadcrumbs on apinboard, in accordance with an illustrative embodiment;

FIG. 5 is a drawing of a pinboard used in conjunction with a dashboard,in accordance with an illustrative embodiment;

FIG. 6 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment;

FIG. 7 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment;

FIG. 8 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment;

FIG. 9 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment;

FIG. 10 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment;

FIG. 11 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment;

FIG. 12 is an illustration of manipulating a pinboard of breadcrumbs, inaccordance with an illustrative embodiment;

FIG. 13 is another illustration of manipulating a pinboard ofbreadcrumbs, in accordance with an illustrative embodiment;

FIG. 14 is an illustration of moving through linked pages when abreadcrumb is selected, in accordance with an illustrative embodiment;

FIG. 15 is a flowchart of a method for performing an action withbreadcrumbs, in accordance with an illustrative embodiment;

FIG. 16 is a system for implementing a pinboard of breadcrumbs, inaccordance with an illustrative embodiment;

FIG. 17 illustrates a tangible display in which a breadcrumb and adisplay area are updated in response to selecting a category, inaccordance with an illustrative embodiment;

FIG. 18 illustrates a tangible display in which a timeline is used fornavigation and breadcrumb creation, in accordance with an illustrativeembodiment;

FIG. 19 illustrates a tangible display in which steps of a processcategory are indicated as being completed and breadcrumb modification,in accordance with an illustrative embodiment;

FIG. 20 is a flowchart of a computer-implemented method forsimultaneously updating a breadcrumb and displaying information inresponse to selecting a category, in accordance with an illustrativeembodiment;

FIG. 21 is a computer for implementing simultaneous updates to abreadcrumb and display of information in response to selecting acategory on a tangible display device, in accordance with anillustrative embodiment; and

FIG. 22 illustrates a data processing system, in accordance with anillustrative embodiment.

DETAILED DESCRIPTION

The illustrative embodiments recognize and take into account thatbreadcrumbs are navigation shortcuts of prior locations a user visited,but that breadcrumbs have limited functionality. Thus, the illustrativeembodiments provide for dynamic breadcrumbs that are movablebreadcrumbs, such as by dragging and dropping. Thus, the illustrativeembodiments provide for a pinboard. A pinboard is defined as an area ona display where breadcrumbs are collected and/or organized. Thus, apinboard may be thought of as a collection of locations a user isinterested in. A user can have multiple pinboards from a pinboard icondropdown, covering different categories of locations. A breadcrumb canbe dragged to a pinboard.

The illustrative embodiments also recognize and take into account thatbreadcrumbs may be given additional functionality. For example, abreadcrumb can also have a list of dropdown actions associated with it,allowing a user to take actions on the breadcrumb, rather than having tonavigate back to the particular location to take an action.

FIG. 1 is an illustration of manipulation of breadcrumbs on a pinboard,in accordance with an illustrative embodiment. Pinboard 100 and itsbreadcrumbs may be implemented and displayed using a computer anddisplay system, such as data processing system 2200 of FIG. 22. Notethat two instances of pinboard 100 are shown at two different points intime, with row 102 representing a first time and row 104 representing asecond time. FIG. 1 illustrates one method of manipulating breadcrumbson pinboard 100.

Pinboard 100 includes pin icon 106 and separation bar 108. Breadcrumbson one side of separation bar 108, such as to the right of separationbar 108, are breadcrumbs that automatically change over time as a useror the data processing system creates breadcrumbs over time. Breadcrumbsto the other side of separation bar 108, such as to the left ofseparation bar 108, are breadcrumbs that the user desires to bepermanently pinned and readily usable. In an illustrative embodiment,these breadcrumbs do not change unless a user requests such a change.

For example, in row 102, pinboard 100 includes breadcrumb 110 which theuser wishes to frequently access. As shown by arrow 112, the user mayuse an input device to drag or otherwise move breadcrumb 110 to theother side of separation bar 108. Row 104 shows a result of taking thisaction on pinboard 100.

FIG. 2 is another illustration of manipulation of breadcrumbs on apinboard, in accordance with an illustrative embodiment. Pinboard 200and its breadcrumbs may be implemented and displayed using a computerand display system, such as data processing system 2200 of FIG. 16.Pinboard 200 may be a variation of pinboard 100 of FIG. 1.

In this illustrative embodiment, multiple pinboards may be maintained,managed, and displayed. For example, a user may note that next topinboard 200 is pinboard 202, which is represented as a breadcrumb butis actually a collapsed pinboard as indicated by the icon of a personinside the circle shown in FIG. 2. In other words, a pinboard could showboth breadcrumbs and other pinboards represented as breadcrumbs.

In this example, the user drags or otherwise moves an icon representingpinboard 202 to pin icon 204, as represented by arrow 206. As a result,the data processing system may cause pop-up window 208 to appear. Pop-upwindow 208 may display a list of different pinboards, which now includespinboard 202, as well as pinboard 200. If a user subsequently selectsone of the pinboards in pop-up window 208, then the breadcrumbsdisplayed to the right of pin icon 204 will change to the selectedpinboard. Optionally, a user may select expansion button 210 to eithercreate a new pinboard or to expand the selection of pinboards shown inpop-up window 208.

This illustrative embodiment may be further varied. For example, pop-upwindow 208 may display individual breadcrumbs, possibly together withone or more pinboards. Pop-up window 208 may take some other form, suchas a permanently displayed screen or some other graphical user interfacewith which a user may interact.

FIG. 3 is another illustration of manipulation of breadcrumbs on apinboard, in accordance with an illustrative embodiment. Pinboard 300and its breadcrumbs may be implemented and displayed using a computerand display system, such as data processing system 2200 of FIG. 22.Pinboard 300 may be a variation of pinboard manipulation, as shown inFIG. 2.

In this illustrative embodiment, breadcrumb 302 in pinboard 300 isdragged or otherwise moved to second pinboard 304 in group of pinboards306, as shown by arrow 308. In this manner, a user may associate abreadcrumb, such as breadcrumb 302, with a different pinboard. In thissame manner, breadcrumb 302 may be moved to other pinboards such that asingle breadcrumb appears in multiple pinboards simultaneously.

In addition, group of pinboards 306 may be associated with adder icon310. Adder icon 310 may be selected to create a new pinboard into whichbreadcrumbs may be dragged or otherwise added.

FIG. 4 is another illustration of manipulation of breadcrumbs on apinboard, in accordance with an illustrative embodiment. Pinboard 400and its breadcrumbs may be implemented and displayed using a computerand display system, such as data processing system 2200 of FIG. 22.Pinboard 400 may be a variation of breadcrumb manipulation on apinboard, as shown in FIG. 1.

In this illustrative embodiment, additional capabilities are provided tothe breadcrumbs in order to increase the speed at which the computer isable to process commands provided by a user. For example, breadcrumb 402may be selected, in response to which pop-up window 404 may bedisplayed. Pop-up window 404 may, in turn, display one or more commands406 which may be performed with respect to breadcrumb 402, or one ormore commands which may be performed with respect to the underlying dataor function to which breadcrumb 402 points.

For example, commands 406 may be commands to manipulate breadcrumb 402,such as, for example, to remove, edit, or highlight, or perhaps, movethe breadcrumb to another pinboard.

In another example, commands 406 may be one or more commands directingan action be taken with respect to underlying data to which breadcrumb402 points. In a specific example, breadcrumb 402 may point to a linkwhich, when selected, displays human resources data regarding aparticular person. In this case, commands 406 may be to indicate thatthe person is to receive an automatic pay raise, is to be evaluated, isto have an evaluation reviewed by management, or to update one or moreaspects of profile describing the person. “Profile data” is informationabout a person, such as name, age, sex, account number, assigneddepartment, or any other information.

In this particular example, the action may be taken faster relative toconventional pinboards and breadcrumbs. In a conventional pinboard andbreadcrumb arrangement, a user would select a breadcrumb. In response,the user would be directed to a web page or dashboard to which thatbreadcrumb is linked. The user could then take actions on that web pageor dashboard. However, using the illustrative embodiments, the user mayinstead use pop-up window 404 to directly issue commands that ordinarilycould only be accessed via the web page or dashboard, but without havingto actually navigate to and display the web page or dashboard. As aresult, the computer may operate more quickly than with conventionalpinboard and breadcrumb systems.

Commands 406 may take many different forms. More generally, commands 406may be any commands or actions that may be taken with respect to eitherbreadcrumb 402 itself, or the data or software to which breadcrumb 402is linked. Thus, the illustrative embodiments are not limited to thehuman resources example described above.

More generally, the action may be any action that the user wishes totake with respect to the breadcrumb or the underlying data orfunctionality to which the breadcrumb points. In another non-limitingexample, the illustrative embodiments contemplate that the action may beto delete, hide, or remove a breadcrumb. In a more specific example,this type of action may be accomplished by dragging the breadcrumb awayand off the pinboard. In another more specific example, this type ofaction may be accomplished by right-clicking on the breadcrumb using amouse, and then selecting an option to delete, hide, or remove thebreadcrumb from the pinboard. The illustrative embodiments contemplatemany other types of actions. The examples described above with respectto one or more breadcrumbs and/or one or more pinboards are examples ofpinable and actionable navigation breadcrumbs.

FIG. 5 through FIG. 11 refer to a specific example of use of theillustrative pinboards and breadcrumbs in the context of a humanresources program. Thus, FIG. 5 through FIG. 11 further the specificexample described in FIG. 4. For this reason, FIG. 5 through FIG. 11share similar reference numerals. For all of FIG. 5 through FIG. 11,dashboard 500, pinboard 502, and breadcrumbs 504 may all be implementedand displayed using a computer and display system, such as dataprocessing system 2200 of FIG. 22. Breadcrumbs 504 may includebreadcrumb 508 and breadcrumb 510, which are described further below.Pin icon 506 is also shown and described further below. Otheralternative uses and examples for the pinboards and breadcrumbs of theillustrative embodiments may exist; thus, the examples shown in FIG. 5through FIG. 11 do not necessarily limit the claimed inventions.

FIG. 5 is a drawing of a pinboard used in conjunction with a dashboard,in accordance with an illustrative embodiment. Dashboard 500 includespinboard 502 of breadcrumbs 504, which may be an example of any of thepinboards and breadcrumbs described with respect to FIG. 1 through FIG.4. Thus, for example, pin icon 506 could be pin icon 106 of FIG. 1.

Dashboard 500 shows several display areas which serve differentfunctions. Some display areas, such as display area 512, show onlyinformation or data, which perhaps could be expanded by selection ofexemplary expansion button 514. Other display areas, such as displayarea 516 may reference applications or functions which may take action,in addition to displaying information. For example, display area 516includes “clock out” button 518, which may be a function or a command toanother software application to indicate that paid time should no longerbe tracked for a particular employee.

FIG. 6 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment. In FIG. 6, auser has selected breadcrumb 508. Breadcrumb 508 is a link to a firstset of dashboard pages associated with woman 600. As a result, adifferent set of display areas is shown in FIG. 6. FIG. 7 is anotherdrawing of a pinboard used in conjunction with a dashboard, inaccordance with an illustrative embodiment. In FIG. 7, a user hasselected breadcrumb 510. Breadcrumb 510 is a link to a second set ofdashboard pages associated with man 700. As a result, a still differentset of display areas is shown in FIG. 7, relative to FIG. 6.

FIG. 8 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment. In FIG. 8, auser is manipulating breadcrumb 510 to associate breadcrumb 510 (whichrefers to the second set of pages relating to man 700) with a differentpinboard. For example, a user could have selected breadcrumb 510,perhaps by using a “right-click” function of a mouse input device(though other input means are possible). As a result, pop-up window 800is displayed.

Pop-up window 800 includes commands 802. In this illustrative example,commands 802 include “tile view”, “pin”, “share”, “tag”, and “more.” Byselecting “tile view” a user may return to dashboard 500 shown in FIG.8. By selecting “pin” the user may pin this breadcrumb to one or morepinboards. By selecting “share,” the user may share the breadcrumb withanother user, presumably using the same or similar human resourcessoftware. By selecting “tag” the user may highlight or set a note tohimself or herself, or perhaps to another person, that attention isneeded with respect to this second set of dashboard pages associatedwith man 700. By selecting “more” a user may prompt the computer todisplay additional actions that may be taken with respect to breadcrumb510 or additional actions that may be taken with respect to the data orsoftware to which breadcrumb 510 points.

FIG. 9 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment. FIG. 9 showssecond pop-up window 900, which is displayed when the user selected“pin” in commands 802 of pop-up window 800 of FIG. 8. Second pop-upwindow 900 displays a set of pinboards 902 to which breadcrumb 510 maybe associated. The user may select one or more of the pinboards shown inpinboards 902. In this illustrative embodiment, the user selected “checkpaperwork.” Thus, breadcrumb 510 will now be associated with thepinboard known as “check paperwork.”

Other commands or functions may also be present in second pop-up window900, such as, for example, “create new board” button 904. A user mayactuate this button to create a new pinboard with which the user wouldlike to associate breadcrumb 510.

FIG. 10 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment. FIG. 10illustrates a result of the action taken in FIG. 9. Specifically,breadcrumb 510 is now part of “check paperwork” pinboard 1000 shown inFIG. 10. In this manner, a user may collect breadcrumbs associated witha variety of different people for which the user wishes to checkpaperwork. When the user wishes to check an individual's paperwork, theuser can then select the corresponding breadcrumb in the correspondingpinboard to access the desired data or software functions. Accordingly,the user may more easily organize information and data, as well ascomputer functions, and cause the computer to operate more efficientlyon that data as well as with respect to software functions.

FIG. 11 is another drawing of a pinboard used in conjunction with adashboard, in accordance with an illustrative embodiment. FIG. 11 showsthat the pinboards themselves may be manipulated, in addition to thebreadcrumbs. For example, if a user selects “check paperwork” pinboard1000 shown in FIG. 10, then set of pinboards 1100 are shown. Thesepinboards may show the specific documents to be reviewed forcorresponding persons, organized by person (or organized by thecorresponding breadcrumb). Additional documents, software functions, orpinboards may also be displayed, such as pinboard 1102.

FIG. 12 is an illustration of manipulating a pinboard of breadcrumbs, inaccordance with an illustrative embodiment. Pinboard 502 shown in FIG.12 may be any of pinboard 1202 shown in FIG. 1 through FIG. 11. Forexample, pinboard 502 in FIG. 12 may include breadcrumbs 504, pin icon506, breadcrumb 508, breadcrumb 510, and separation bar 1200 (which maybe separation bar 108 of FIG. 1). Pinboard 502 and its variouscomponents may be implemented using a data processing system, such asdata processing system 2200 of FIG. 22.

FIG. 12 shows an ability to collapse and expand pinboard 502 in order toenhance ease of use. Thus, for example, pinboard 502 could expand toexpanded pinboard 1202 which shows a far larger number of breadcrumbsrelative to pinboard 502. Expanded pinboard 1202 could show some or allof the breadcrumbs contained within pinboard 1202.

A user could then manipulate expanded pinboard 502 by using expandedpinboard 1202. For example, the user could select breadcrumb t 1204 fromexpanded pinboard 1202. As a result, this breadcrumb will now bedisplayed in pinboard 502, which in this context is collapsed pinboard1206.

Expanded pinboard 1202 may also be modified as a result of this useraction. For example, if the user were to re-expand pinboard 502, thenthe resulting expanded pinboard may be re-expanded pinboard 1208. Notethat the position of breadcrumb t 1204 has been moved to just afterbreadcrumb 508, which is the same position breadcrumb t 1204 had incollapsed pinboard 1206. In other words, breadcrumb t 1204 has movedfrom its original position in pinboard 1202 to a new position inre-expanded pinboard 1208. This capability may be used to establish avisual history of breadcrumb use, as shown in FIG. 13.

The illustrative embodiments shown in FIG. 11 and FIG. 12 may be furthervaried. For example, in an illustrative embodiment, selecting abreadcrumb and modifying the underlying data or software to which thebreadcrumb points may cause the breadcrumb to switch positions on eitherthe collapsed pinboard, the expanded pinboard, or both. Thus, theillustrative embodiments are not necessarily limited to the examplesshown above.

FIG. 13 is another illustration of manipulating a pinboard ofbreadcrumbs, in accordance with an illustrative embodiment. FIG. 13represents a visual history of breadcrumb use that may be displayed on apinboard as a result of breadcrumb manipulations, such as that shown inFIG. 11 and FIG. 12. The techniques described with respect to FIG. 13may be implemented using a data processing system, such as dataprocessing system 2200 of FIG. 22.

Each of row 1300, row 1302, row 1304, row 1306, row 1308, and row 1310represent the same pinboard, with each succeeding row indicating aresult of manipulating the pinboard or its breadcrumbs at an earliertime. In row 1300, an expanded pinboard is shown, truncated to athreshold number of breadcrumbs in order to prevent the pinboard fromexpanding past a certain area of the physical display unless requestedby the user. In an illustrative embodiment, a user may manipulateseparation bar 1312 to further truncate the pinboard, as shown in row1302.

If desired, a user may rollover separation bar 1312, as shown in row1304, in order to allow it to be selectable for expansion, as shown inrow 1306. Once selected, the pinboard is expanded again as shown in row1308, and may be re-collapsed, as shown in row 1310.

Thus, the illustrative embodiments provide that breadcrumbs may indicatewhich page is currently selected. If a user navigates to a large numberof pages that does not fit well onscreen, a method is desired totruncate the navigation history such that a given number of breadcrumbsare not shown, but rather, the last X breadcrumbs are shown, such as,for example, three to seven. This collapse could be accomplished withthe collapse/expand pattern shown in FIG. 13.

FIG. 14 is an illustration of moving through linked pages when abreadcrumb is selected, in accordance with an illustrative embodiment.Pinboard 1400 may be any of the pinboards described above with respectto FIG. 1 through FIG. 13. Pinboard 1400 and the sequential page viewingprocess described with respect to FIG. 14 may be implemented using adata processing system, such as data processing system 2200 of FIG. 22.

Pinboard 1400 contains breadcrumbs 1402, which includes breadcrumb pinicon 1404, separation bar 1406, first breadcrumb 1408, second breadcrumb1410, third breadcrumb 1412, and fourth breadcrumb 1414. More or fewerbreadcrumbs may be present on pinboard 1400. Breadcrumb 1408 isassociated with or points to page 1416. Breadcrumb 1410 is associatedwith or points to page 1418. Breadcrumb 1412 is associated with orpoints to page 1420. Breadcrumb 1414 is associated with or points topage 1422.

In an illustrative embodiment, a user may select breadcrumb 1408 onpinboard 1400, and as a result, page 1416 is displayed. If the user thenselects breadcrumb 1414 on pinboard 1400, then in one illustrativeembodiment, page 1422 is not immediately displayed. Instead, if the userprefers, the display device may first move from page 1416 to page 1418,and then in succession to page 1420 and finally page 1422. As a result,the user sees a sequence of pages starting with the page associated withthe breadcrumb last selected and ending with the next breadcrumbselected, with all intervening pages between those breadcrumbs displayedin sequence.

Alternatively, if the user prefers, only the page associated with thenewly selected breadcrumb is displayed. In another alternative, onlyselected ones of intervening pages are displayed. The selected ones maybe selected by content (such as only time entry pages), by count (suchas only every third intervening page), or by any other desired rule orpolicy, possibly programmable by the user.

Thus, the illustrative embodiments described with respect to FIG. 14allow a user, viewing page 1 (breadcrumb 1), to select breadcrumb 5. Inresponse, the system may move the user sequentially through one or moreof the intervening breadcrumbs pages, such as, for example, that theuser briefly sees page 2, page 3, and page 4, before finally arriving onpage 5.

Additional variations are possible. For example, breadcrumbs may respondto gestures on the page below. For example, the user swipes right onpage 1416 (breadcrumb 1408), then the system advances to breadcrumb 1410to the right. Likewise, if the user swipes left on page 1420 (breadcrumb1412), the system may advance to the breadcrumb to the left (breadcrumb1410). In this example, swipe may be replaced by click-and drag, or anyother suitable input mechanism.

This feature is similar to a traditional Web browser's forward and backbutton, but more visually distinct and responding to gestures receivedby the page below (rather than the breadcrumb or breadcrumb history).Thus, this illustrative embodiment connects the underlying page to thebreadcrumbs that establish the link to the page in a way that is notcurrently used in the art.

FIG. 15 is a flowchart of a method for performing an action withbreadcrumbs, in accordance with an illustrative embodiment. Method 1500is implemented using a data processing system, such as data processingsystem 2200 of FIG. 22. Method 1500 may be a variation of the techniquesdescribed with respect to FIG. 1 through FIG. 14. The various operationsdescribed with respect to method 1500 are described as being performedby a computer; however, in the context of FIG. 15 the term “computer”may refer to any processor, application specific integrated circuit,application specific processor, or any other tangible, physical hardwareoperating in conjunction with a tangible, physical display, tangible,physical input devices, and a non-transitory computer readable storagemedium.

Method 1500 may begin with displaying, on a tangible display device, apinboard including a first breadcrumb (operation 1502). Then, thecomputer may receive input from a user, via a tangible user inputdevice, commanding that an action be taken with respect to thebreadcrumb, the action being other than navigating to where thebreadcrumb points (operation 1504). The computer may then perform theaction, wherein the action enables faster operation of the computer byavoidance of intervening user actions (operation 1506).

Method 1500 may have more, fewer, or different operations. For example,the action may be dragging the first breadcrumb to a different positionon the pinboard relative to other breadcrumbs on the pinboard. Inanother example, the action comprises dragging the first breadcrumb ontoa token. In this case, the method further includes displaying on thetangible user input device a list of additional pinboards to which thebreadcrumb may be placed.

In another illustrative embodiment, method 1500 may further includereceiving a user selection of one of the additional pinboards; andadding the first breadcrumb to the one of the additional pinboards. Instill another illustrative embodiment, the action further includesdragging the first breadcrumb onto a second pinboard also displayed onthe tangible user input device, and adding the first breadcrumb to thesecond pinboard. In still another illustrative embodiment, the actionfurther includes selecting the first breadcrumb; responsive toselecting, displaying a list of commands that can be performed withrespect to data to which the breadcrumb points; receiving a userselection of a command on the list; and executing the command.

In yet another illustrative embodiment, for method 1500 the action mayfurther include selecting the first breadcrumb; and responsive toselecting, displaying a dashboard of information, actions, or bothinformation and actions in relation to data to which the breadcrumbpoints. In another illustrative embodiment, method 1500 may furtherinclude selecting a second breadcrumb on the pinboard; dragging thesecond breadcrumb onto the first breadcrumb; and adding data to whichthe second breadcrumb points to the first breadcrumb. In yet anotherillustrative embodiment, the breadcrumb indicates which page iscurrently selected.

In still another illustrative embodiment, method 1500 also includesdisplaying a plurality of additional breadcrumbs; and limiting a numberof the plurality of additional breadcrumbs displayed to a pre-determinednumber. In this case, method 1500 may additionally include receiving acommand to expand a number of breadcrumbs displayed; and displaying atleast some of the number of plurality of additional breadcrumbsdisplayed beyond the pre-determined number.

In a different illustrative embodiment, method 1500 may further includedisplaying both a second breadcrumb and a third breadcrumb on thepinboard, wherein a page associated with the first breadcrumb is alsodisplayed; receiving a command actuating the third breadcrumb;responsive to receiving the command, displaying a second page associatedwith the second breadcrumb, waiting a time, and then automaticallydisplaying a third page associated with the third breadcrumb, whereindisplaying the second page and the third page appears to the user as aslide-show. In still a different illustrative embodiment, method 1500may include displaying a page associated with the first breadcrumb;receiving a command to change the page to a different page; andresponsive to changing the page, changing display of the pinboard tohighlight a second breadcrumb on the pinboard, the second breadcrumbassociated with the different page.

Thus, the illustrative embodiments described with respect to FIG. 15 areexemplary only and do not necessarily limit the claimed inventions.Further variations of method 1500 are possible, such as other techniquesdescribed with respect to FIG. 1 through FIG. 14.

FIG. 16 is a system for implementing a pinboard of breadcrumbs, inaccordance with an illustrative embodiment. System 1600 is implementedas a data processing system, such as data processing system 2200 of FIG.22. System 1600 may implement a variation of the techniques describedwith respect to FIG. 1 through FIG. 15. System 1600 may be described asa computer; however, in the context of FIG. 16, the term “system”,including system 1600, may refer to any processor, application specificintegrated circuit, application specific processor, or any othertangible, physical hardware operating in conjunction with a tangible,physical display, a tangible, physical input devices, and anon-transitory computer readable storage medium.

Thus, system 1600 may include processor 1602, non-transitory computerreadable-readable storage medium 1604 in communication with theprocessor, display device 1606 in communication with the processor,tangible user input device 1608 in communication with the processor, andelectronics 1610 in communication with processor 1602. Electronics 1610may be physically configured to perform a number of functions.“Physically configured” refers to an application specific integratedcircuit, or one or more hardware components, that are physicallydesigned to perform the functions as described below or the methodsdescribed with respect to FIG. 15.

Thus, for example, electronics 1610 may be physically configured toorder the processor to display, on a tangible display device, a pinboardincluding a first breadcrumb. Electronics 1610 also may be physicallyconfigured to receive input from a user, via the tangible user inputdevice, that commands that an action be taken with respect to thebreadcrumb, the action being other than navigating to where thebreadcrumb points. Electronics 1610 also may be physically configured toperform the action, wherein the action enables faster operation of thecomputer by avoidance of intervening user actions.

Other variations are possible. For example, the action may be draggingthe first breadcrumb onto a token, in which case electronics 1610 may befurther configured to: display on the tangible user input device a listof additional pinboards to which the breadcrumb may be placed. In thiscase, electronics 1610 may be further configured to: responsive toreceiving a user selection of one of the additional pinboards, add thefirst breadcrumb to the one of the additional pinboards.

In another illustrative embodiment, the action further includes draggingthe first breadcrumb onto a second pinboard also displayed on thetangible user input device. In this case, electronics 1610 may befurther configured to: add the first breadcrumb to the second pinboard.

In yet another illustrative embodiment, the action further comprisesselecting the first breadcrumb. In this case, electronics 1610 may befurther configured to: responsive to selecting, display a list ofcommands that can be performed with respect to data to which thebreadcrumb points; receive a user selection of a command on the list;and execute the command.

In still another illustrative embodiment, electronics 1610 may befurther configured to preform additional functions. For example,electronics 1610 may be configured to display both a second breadcrumband a third breadcrumb on the pinboard, wherein a page associated withthe first breadcrumb is also displayed. Subsequently, electronics 1610may be configured to receive a command actuating the third breadcrumb.Subsequently, electronics 1610 may be configured to, responsive toreceiving the command, display a second page associated with the secondbreadcrumb, wait a time, and then automatically display a third pageassociated with the third breadcrumb.

In yet another illustrative embodiment, the action may be one ofdeleting or hiding the first breadcrumb from the pinboard. In this case,deleting or hiding is accomplished by either of: dragging the firstbreadcrumb away and off of the pinboard; or right-clicking on the firstbreadcrumb using a mouse as the tangible user input device, andselecting an option to delete or hide the first breadcrumb.

The illustrative embodiments also provide for a non-transitory computerreadable storage medium storing computer usable program code which, whenexecuted by a processor, performs a method implemented by a computer.The computer usable program code may include computer usable programcode for displaying, on a tangible display device, a pinboard includinga first breadcrumb. The computer usable program code may also includecomputer usable program code for receiving input from a user, via atangible user input device, commanding that an action be taken withrespect to the breadcrumb, the action being other than navigating towhere the breadcrumb points. The computer usable program code may alsoinclude computer usable program code for performing the action, whereinthe action enables faster operation of the computer by avoidance ofintervening user actions.

Thus, the illustrative embodiments described with respect to FIG. 16 areexemplary only and do not necessarily limit the claimed inventions.Further variations of electronics 1610 are possible, such as accordingto techniques described with respect to FIG. 1 through FIG. 15.

FIG. 17 illustrates a tangible display in which a breadcrumb and adisplay area are updated in response to selecting a category, inaccordance with an illustrative embodiment. Screenshot 1700 may be anexample of how a tangible display is altered by program code asdescribed below. Screenshot 1700 may represent a graphical userinterface of a software program implemented by an application specificintegrated circuit or a data processing system, such as data processingsystem 2200 of FIG. 22.

In an illustrative embodiment, at least four display areas are shown inscreenshot 1700. These display areas include first area 1702. First area1702 may be termed a pinboard, which, as defined above, is an area on adisplay where breadcrumbs are collected and/or organized. This pinboardmay contain one or more breadcrumbs, such as breadcrumb 1704, whichrepresents a “home” breadcrumb; breadcrumb 1706, which will be describedfurther below; and breadcrumb 1708, which represents a person to whomthe displayed subject matter relates. This information may be the firstdata to which the breadcrumb points.

The display represented by screenshot 1700 may also include second area1710, which is different than first area 1702. Second area 1710 is aportion of the display or graphical user interface which showsinteractive categories of information regarding the first data, whichagain relates to breadcrumb 1708. The categories in second area 1710 maybe a task list, one or more timelines, different categories ofinformation relating to the employment of a person, or any othersuitable categories. In the illustrative embodiment shown in FIG. 17,the categories in second area 1710 represent a checklist, represented byfirst category 1712, second category 1714, and third category 1716.

The display represented by screenshot 1700 may also include third area1718, which is different than first area 1702 and second area 1710.Third area 1718 is a portion of the display or graphical user interfacewhich shows details regarding first category 1712 when first category1712 is selected by a user. Third area 1718 changes again when a userselects another category, such as second category 1714 or third category1716. Optionally, third area 1718 may include one or more sub-areas inorder to better organize or present information, such as, but notlimited to, sub-area 1720, sub-area 1722, sub-area 1724, sub-area 1726,sub-area 1728, and sub-area 1730. Information in third area 1718 or oneof the corresponding sub-areas may relate to details for carrying outthe task represented by first category 1712.

In addition to displaying details regarding first category 1712 in thirdarea 1718, in response to the user selecting first category 1712 insecond area 1710, the computer simultaneously updates one or more of thebreadcrumbs in first area 1702. This update may be to cause a breadcrumbto point to second data relating to first category 1712. In this manner,faster operation of the computer is enabled by avoidance of interveninguser actions.

In a specific, non-limiting example using the graphical user interfaceshown in FIG. 17, breadcrumb 1706 may be created and added to thepinboard represented by first area 1702 at the same time thatinformation regarding first category 1712 is displayed in third area1718. In this case, breadcrumb 1706 may aid a user at a later time tonavigate back to this particular set of information shown in third area1718. In another example, any one of breadcrumb 1704, breadcrumb 1706,or breadcrumb 1708 may be updated with new information that relates tothe fact that the user selected first category 1712. In a more specificexample, breadcrumb 1708 could be updated so that when the user laterselects breadcrumb 1708, other information is displayed in third area1718, but now the displayed information includes an indication that theuser has previously selected or performed tasks related to firstcategory 1712.

The illustrative embodiments may vary from those described above. Moreor different categories could be displayed. More or different areas maybe displayed on the graphical user interface represented by screenshot1700. For example, fourth area 1732 may be added to the graphical userinterface. Fourth area 1732 may be used to organize which categories aredisplayed in second area 1710. For example, fourth area 1732 may displayan ontologically more abstract category, which may be termed a higherlevel category, which includes all of the categories shown in secondarea 1710. In a more specific example, fourth area 1732 may display“expenses” and second area 1710 may display specific categories or tasksthat relate to “expenses.”

In an illustrative embodiment, a user may select a portion of fourtharea 1732. In response, the computer may display a pop-up window, orsome other means for selecting among two or more higher-levelcategories. Each of the selectable higher-level categories may includelower-level categories. For example, another higher-level category thatcould be selected in fourth area 1732 could be “personnel information,”with lower-level categories relating to “hiring information,” “contactinformation,” “pay information,” and possibly other categories. In eachcase, whichever higher-level category and lower-level category that areselected in combination can change the information shown in third area1718. Likewise, selecting either a higher-level category in fourth area1732, a lower-level category in second area 1710, or a combinationthereof, may simultaneously cause the computer to update one or more ofthe breadcrumbs shown in the pinboard of first area 1702.

Attention is now turned to another specific, non-limiting example of useof the graphical user interface represented by screenshot 1700. When auser clicks on a timeline process, which may be the higher-levelcategories shown in fourth area 1732, three events may occurautomatically and simultaneously. First, the name of the page shownchanges. For example, the term “Expenses” may be displayed in fourtharea 1732 in order to indicate that the higher-level category of“Expenses” is being displayed. Second, since in this example thecategories under “Expenses” relate to a timeline, the timeline shown insecond area 1710 changes. Third, a breadcrumb shown in first area 1702is updated to refer back to the currently displayed page or pages shownin third area 1718.

The illustrative embodiments described above may be further varied. Forexample, the categories shown in second area 1710 may represent one ormore steps or one or more tasks in a process. In this case, thedisplayed categories may have multiple functions. For example, if thesteps or tasks are simple, then the user may act upon those tasksdirectly, either by manipulating portions of second area 1710, as shownin FIG. 19, or by manipulating portions of third area 1718, or both. Inanother example, if the steps or tasks are more complex, then thecategories shown in second area 1710 may simply name a step or task thatis to be worked upon. In this case, the categories displayed in secondarea 1710 may function like anchor links which later jump down to aparticular step in the process as a user works within and manipulatesinformation shown in third area 1718.

The illustrative embodiments described with respect to FIG. 17 may befurther varied, such as described below with respect to FIG. 18 throughFIG. 21. The look and feel of any of the areas described with respect toFIG. 17 may be varied; for example, what is shown are blocks or squares,but the areas may have a variety of different shapes and may beorganized differently on a given graphical user interface. A particulararea may be discontinuously represented on a graphical user interface;that is, broken up into two or more areas on a graphical user interface,but nevertheless have the same logical functions and purposes describedabove. Thus, the claimed inventions are not necessarily limited to theexamples described with respect to FIG. 17.

FIG. 18 illustrates a tangible display in which a timeline is used fornavigation and breadcrumb creation, in accordance with an illustrativeembodiment. Screenshot 1800 may be an example of how a tangible displayis altered by program code as described below. Screenshot 1800 may be avariation of screenshot 1700, such as, for example, if a user hadselected fourth area 1732 and then selected the “Interactive Program”higher-level category. Screenshot 1800 may represent a graphical userinterface of a software program implemented by an application specificintegrated circuit or a data processing system, such as data processingsystem 2200 of FIG. 22. FIG. 18 and FIG. 17 share common referencenumerals. Reference numerals in common with both FIG. 17 and FIG. 18refer to similar objects or areas, and share the same descriptionsexcept where noted.

As mentioned above, screenshot 1800 shows the state of the graphicaluser interface after a user has selected a new higher-level category infourth area 1732, namely the “Interactive Program.” In doing so,additional information is presented, in this case displaying additionalcategories in addition to the task specific categories shown in FIG. 17.Thus, for example, also shown are category 1802 (“future events”),category 1804 (“upcoming tasks”), category 1806 (“expenses”), category1808 (“profile tasks”) and category 1810 (“to-do”). Additionally,vertical ellipses 1812 indicate that some of these certain categoriesmay be further expanded, or that additional information or commands maybe displayed by selecting vertical ellipses 1812. Hamburger icon 1814may be used to allow the user to display different higher-levelcategories or perhaps information or functions relating to informationdisplayed in fourth area 1732.

In each case, the functionality of first area 1702, second area 1710,third area 1718, and fourth area 1732 may be the same as described abovewith respect to FIG. 17. FIG. 18 describes additional levels ofinformation and variations to those shown in FIG. 17.

In a specific, non-limiting example relating to the graphical userinterface shown in FIG. 18, the categories shown in second area 1710 maybe a timeline. The timeline may be turned on and off via hamburger icon1814. When the timeline is shown, as it is in FIG. 18, the categories inthe timeline can be used for navigation and for changing the informationshown in third area 1718.

For example, when a user clicks on category 1806 (“expenses”),information regarding expenses is displayed in third area 1718, andsimultaneously a new breadcrumb (in this case, breadcrumb 1706) isgenerated and displayed in first area 1702. Yet further, simultaneouslywith the other two actions, the timeline in second area 1710 will showthe steps for category 1806 (“expenses”)—these steps are shown as firstcategory 1712, second category 1714, and third category 1716. Thus, FIG.18 represents a manner of displaying additional information and actionsrelative to FIG. 17.

In this particular illustrative embodiment, the breadcrumbs in firstarea 1702 may represent the breadth of the underlying software systemrepresented in part by the graphical user interface shown in screenshot1800. These breadcrumbs may be actions being performed in parallel, orperhaps in series. The timeline shown in second area 1710 may representthe depth of actions that could be taken, or the number of actions thatcould be taken. Other variations are possible.

The illustrative embodiments described with respect to FIG. 18 may befurther varied, such as described below with respect to FIG. 19 throughFIG. 21. The look and feel of any of the areas described with respect toFIG. 18 may be varied; for example, what is shown are blocks or squares,but the areas may have a variety of different shapes and may beorganized differently on a given graphical user interface. A particulararea may be discontinuously represented on a graphical user interface;that is, broken up into two or more areas on a graphical user interface,but nevertheless have the same logical functions and purposes describedabove. Thus, the claimed inventions are not necessarily limited to theexamples described with respect to FIG. 18.

FIG. 19 illustrates a tangible display in which steps of a processcategory are indicated as being completed and breadcrumb modification,in accordance with an illustrative embodiment. Screenshot 1900 may be anexample of how a tangible display is altered by program code asdescribed below. Screenshot 1700 may represent a graphical userinterface of a software program implemented by an application specificintegrated circuit or a data processing system, such as data processingsystem 2200 of FIG. 22. Screenshot 1900 may be a variation of screenshot1700. FIG. 17 through FIG. 19 share common reference numerals. Referencenumerals in common to any of FIG. 17 through FIG. 19 refer to similarobjects or areas, and share the same descriptions except where noted.

Screenshot 1900 shows additional functionality that may be providedwithin second area 1710. Specifically, each of first category 1712,second category 1714, and third category 1716 may be associated with oneor more selectable icons, such as selectable icon 1902 and selectableicon 1904. Responsive to a user selecting a selectable icon, thecomputer may update the selectable icon to include a check mark or someother indicator that indicates that the task or step represented by thecorresponding category has been completed.

Thus, for example, a user may select selectable icon 1902. The computerthen updates the graphical user interface as represented by screenshot1900 to include a check mark within selectable icon 1902. The underlyingsoftware and/or data is then updated to indicate that the task or stepassociated with category 1712 has been completed.

Optionally, information may be updated and displayed within third area1718. Optionally, and possibly simultaneously, one or more breadcrumbswithin first area 1702 may be updated. These processes are describedabove with respect to FIG. 17.

The illustrative embodiments described with respect to FIG. 19 may befurther varied, such as described below with respect to FIG. 20 and FIG.21. The look and feel of any of the areas described with respect to FIG.19 may be varied; for example, what is shown are blocks or squares, butthe areas may have a variety of different shapes and may be organizeddifferently on a given graphical user interface. In another example, theselectable icons may have different shapes, and more or fewer selectableicons may be presented for a given category. Selectable icons may begrayed out or highlighted as desired to indicate tasks that remain to becompleted. A particular area may be discontinuously represented on agraphical user interface; that is, broken up into two or more areas on agraphical user interface, but nevertheless have the same logicalfunctions and purposes as described above. Thus, the claimed inventionsare not necessarily limited to the examples described with respect toFIG. 19.

FIG. 20 is a flowchart of a computer-implemented method forsimultaneously updating a breadcrumb and displaying information inresponse to selecting a category, in accordance with an illustrativeembodiment. Method 2000 is implemented using a data processing system,such as data processing system 2200 of FIG. 22. Method 2000 may be avariation of the techniques described with respect to FIG. 1 throughFIG. 19, particularly FIG. 17 through FIG. 19. The various operationsdescribed with respect to method 2000 are described as being performedby a computer; however, in the context of FIG. 20, the term “computer”may refer to any processor, application specific integrated circuit,application specific processor, or any other tangible, physical hardwareoperating in conjunction with a tangible, physical display, a tangible,physical input devices, and a non-transitory computer readable storagemedium.

Method 2000 is implemented in a computer. Method 2000 may includedisplaying, on a tangible display device, a pinboard including a firstbreadcrumb on a first area of the display device, wherein the breadcrumbpoints to first data (operation 2002). Method 2000 may also includedisplaying, on a second area of the tangible display device differentthan the first area, a plurality of categories of information regardingthe first data (operation 2004). Method 2000 may also include,responsive to selecting a first category of the plurality of categories,performing both of: displaying details regarding the first category in athird area of the tangible display device different than the first areaand the second area, as well as updating the breadcrumb to point tosecond data relating to the first category, whereby faster operation ofthe computer is enabled by avoidance of intervening user actions(operation 2006).

Method 2000 may be varied. For example, in one illustrative embodiment,the first category is a timeline. In this case, method 2000 may furtherinclude displaying, in the second area, one or more steps of a processrelated to the timeline. In addition, method 2000 may further include,responsive to selecting a particular step of the one or more steps,displaying an indication that the particular step is complete.Alternatively, method 2000 may further include, responsive to userinput, adding another step to the one or more steps. In this case, theuser may be a first person other than a second person selecting thetimeline. In a related illustrative embodiment, method 2000 may furtherinclude displaying, in the second area, one or more sub-steps of theprocess under a first step of the one or more steps.

Method 2000 may be further varied. For example, method 2000 may furtherinclude displaying on a fourth area of the tangible display device,different than the first area, second area, and the third area, a nameof the first category. In this case, method 2000 may further include,responsive to selecting the fourth area, displaying to the user othercategories in the one or more categories for selection.

Other variations are possible. For example, the first data may beregarding one of a person and a project. However, the first data mayrelate to many different things. For example, the first data may relateto a person, a project, a position, a work agreement, an asset, a page,a view, an entity, or possibly many other things. The breadcrumb for thefirst data points to the first data in the second and/or third area thatit relates to, depending on what PAGE/VIEW and importantly, what STATEit represents. For example, if the breadcrumb represents a transfer(transfer person A from manager X to manager Y) and the transferexperience required ten steps, then the breadcrumb could represent thetransfer process and the fact that the last step the user completed wasstep seven; thus the breadcrumb is updated to represent thecorresponding page/view/entity plus state.

Thus, the illustrative embodiments described with respect to FIG. 20 areexemplary only and do not necessarily limit the claimed inventions.Further variations of method 2000 are possible, such as other techniquesdescribed with respect to FIG. 1 through FIG. 19, particularly FIG. 17through FIG. 19.

FIG. 21 is a computer for implementing simultaneous updates to abreadcrumb and a display of information in response to selecting acategory on a tangible display device, in accordance with anillustrative embodiment. System 2100 is implemented as a data processingsystem, such as data processing system 2200 of FIG. 22. System 2100 mayimplement a variation of the techniques described with respect to FIG. 1through FIG. 20, particularly FIG. 17 through FIG. 20. System 2100 maybe described as a computer; however, in the context of FIG. 21 the term“system”, including system 2100, may refer to any processor, applicationspecific integrated circuit, application specific processor, or anyother tangible, physical hardware operating in conjunction with atangible, physical display, a tangible, physical input devices, and anon-transitory computer readable storage medium.

System 2100 may be a computer. The computer may include processor 2102,bus 2104 in communication with processor 2102, tangible display device2106 in communication with processor 2102, and non-transitorycomputer-readable storage medium 2108 in communication with processor2102. Non-transitory computer-readable storage medium 2108 storesprogram code 2110 which, when executed by the processor, performs amethod and changes non-transitory computer-readable storage medium 2108and tangible display device 2106.

Program code 2110 may include program code for displaying, on tangibledisplay device 2106, a pinboard including a first breadcrumb on a firstarea of the display device, wherein the breadcrumb points to first data.Program code 2110 may also include program code for displaying, on asecond area of the tangible display device different than the firstarea, a plurality of categories of information regarding the first data.Program code 2110 may also include program code for, responsive toselecting a first category of the plurality of categories, performingboth of: displaying details regarding the first category in a third areaof the tangible display device different than the first area and thesecond area, as well as updating the breadcrumb to point to second datarelating to the first category, whereby faster operation of the computeris enabled by avoidance of intervening user actions.

System 2100 may be further varied. For example, when the first categoryis a timeline, program code 2110 may also include program code fordisplaying, in the second area, one or more steps of a process relatedto the timeline. In this case, program code 2110 may also includeprogram code for, responsive to selecting a particular step of the oneor more steps, displaying an indication that the particular step iscomplete. In another illustrative embodiment, program code 2110 may alsoinclude program code for, responsive to user input, adding another stepto the one or more steps. In this case, the user may be a first personother than a second person selecting the timeline. In anotherillustrative embodiment, program code 2110 may also include program codefor displaying, in the second area, one or more sub-steps of the processunder a first step of the one or more steps.

In a different illustrative embodiment, program code 2110 may alsoinclude program code for displaying on a fourth area of the tangibledisplay device, different than the first area, second area, and thethird area, a name of the first category. In this case, program code2110 may also include program code for, responsive to selecting thefourth area, displaying to the user other categories in the one or morecategories for selection. In still another illustrative embodiment, thefirst data may be regarding one of a person and a project.

In a related illustrative embodiment, non-transitory computer readablestorage medium 2108 may take the form of a non-transitory computerreadable storage medium storing program code which, when executed by aprocessor, performs a method and changes the non-transitory computerreadable storage medium and a tangible display device. Such program codemay be any of the variations of program code 2110 described above withrespect to system 2100.

Thus, the illustrative embodiments described with respect to FIG. 21 areexemplary only and do not necessarily limit the claimed inventions.Further variations of the program code described for program code 2110are possible, such as according to techniques described with respect toFIG. 1 through FIG. 20, particularly FIG. 17 through FIG. 19.

Turning now to FIG. 22, an illustration of a data processing system isdepicted in accordance with an illustrative embodiment. Data processingsystem 2200 in FIG. 22 is an example of a data processing system thatmay be used to implement the illustrative embodiments, such as thetechniques described with respect to FIG. 1 through FIG. 19. In thisillustrative example, data processing system 2200 includescommunications fabric 2202, which provides communications betweenprocessor unit 2204, memory 2206, persistent storage 2208,communications unit 2210, input/output (I/O) unit 2212, and display2214.

Processor unit 2204 serves to execute instructions for software that maybe loaded into memory 2206. This software may be an associative memory,content addressable memory, or software for implementing the processesdescribed elsewhere herein. Processor unit 2204 may be a number ofprocessors, a multi-processor core, or some other type of processor,depending on the particular implementation. A number, as used hereinwith reference to an item, means one or more items. Further, processorunit 2204 may be implemented using a number of heterogeneous processorsystems in which a main processor is present with secondary processorson a single chip. As another illustrative example, processor unit 2204may be a symmetric, multi-processor system containing multipleprocessors of the same type.

Memory 2206 and persistent storage 2208 are examples of storage devices2216. A storage device is any piece of hardware that is capable ofstoring information, such as, for example, without limitation, data,program code in functional form, and/or other suitable informationeither on a temporary basis and/or a permanent basis. Storage devices2216 may also be referred to as computer readable storage devices inthese examples. Memory 2206, in these examples, may be, for example, arandom access memory or any other suitable volatile or non-volatilestorage device. Persistent storage 2208 may take various forms,depending on the particular implementation.

For example, persistent storage 2208 may contain one or more componentsor devices. For example, persistent storage 2208 may be a hard drive, aflash memory, a rewritable optical disk, a rewritable magnetic tape, orsome combination of the above. The media used by persistent storage 2208also may be removable. For example, a removable hard drive may be usedfor persistent storage 2208.

Communications unit 2210, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 2210 is a network interface card. Communicationsunit 2210 may provide communications through the use of either or bothphysical and wireless communications links.

Input/output (I/O) unit 2212 allows for input and output of data withother devices that may be connected to data processing system 2200. Forexample, input/output (I/O) unit 2212 may provide a connection for userinput through a keyboard, a mouse, and/or some other suitable inputdevice. Further, input/output (I/O) unit 2212 may send output to aprinter. Display 2214 provides a mechanism to display information to auser.

Instructions for the operating system, applications, and/or programs maybe located in storage devices 2216, which are in communication withprocessor unit 2204 through communications fabric 2202. In theseillustrative examples, the instructions are in a functional form onpersistent storage 2208. These instructions may be loaded into memory2206 for execution by processor unit 2204. The processes of thedifferent embodiments may be performed by processor unit 2204 usingcomputer implemented instructions, which may be located in a memory,such as memory 2206.

These instructions are referred to as program code, computer usableprogram code, or computer readable program code that may be read andexecuted by a processor in processor unit 2204. The program code in thedifferent embodiments may be embodied on different physical or computerreadable storage media, such as memory 2206 or persistent storage 2208.

Program code 2218 is located in a functional form on computer readablemedia 2220 that is selectively removable and may be loaded onto ortransferred to data processing system 2200 for execution by processorunit 2204. Program code 2218 and computer readable media 2220 formcomputer program product 2222 in these examples. In one example,computer readable media 2220 may be computer readable storage media 2224or computer readable signal media 2226. Computer readable storage media2224 may include, for example, an optical or magnetic disk that isinserted or placed into a drive or other device that is part ofpersistent storage 2208 for transfer onto a storage device, such as ahard drive, that is part of persistent storage 2208. Computer readablestorage media 2224 also may take the form of a persistent storage, suchas a hard drive, a thumb drive, or a flash memory, that is connected todata processing system 2200. In some instances, computer readablestorage media 2224 may not be removable from data processing system2200.

Alternatively, program code 2218 may be transferred to data processingsystem 2200 using computer readable signal media 2226. Computer readablesignal media 2226 may be, for example, a propagated data signalcontaining program code 2218. For example, computer readable signalmedia 2226 may be an electromagnetic signal, an optical signal, and/orany other suitable type of signal. These signals may be transmitted overcommunications links, such as wireless communications links, opticalfiber cable, coaxial cable, a wire, and/or any other suitable type ofcommunications link. In other words, the communications link and/or theconnection may be physical or wireless in the illustrative examples.

In some illustrative embodiments, program code 2218 may be downloadedover a network to persistent storage 2208 from another device or dataprocessing system through computer readable signal media 2226 for usewithin data processing system 2200. For instance, program code stored ina computer readable storage medium in a server data processing systemmay be downloaded over a network from the server to data processingsystem 2200. The data processing system providing program code 2218 maybe a server computer, a client computer, or some other device capable ofstoring and transmitting program code 2218.

The different components illustrated for data processing system 2200 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to or in place of those illustrated for dataprocessing system 2200. Other components shown in FIG. 22 can be variedfrom the illustrative examples shown. The different embodiments may beimplemented using any hardware device or system capable of runningprogram code. As one example, the data processing system may includeorganic components integrated with inorganic components and/or may becomprised entirely of organic components excluding a human being. Forexample, a storage device may be comprised of an organic semiconductor.

In another illustrative example, processor unit 2204 may take the formof a hardware unit that has circuits that are manufactured or configuredfor a particular use. This type of hardware may perform operationswithout needing program code to be loaded into a memory from a storagedevice to be configured to perform the operations.

For example, when processor unit 2204 takes the form of a hardware unit,processor unit 2204 may be a circuit system, an application specificintegrated circuit (ASIC), a programmable logic device, or some othersuitable type of hardware configured to perform a number of operations.With a programmable logic device, the device is configured to performthe number of operations. The device may be reconfigured at a later timeor may be permanently configured to perform the number of operations.Examples of programmable logic devices include, for example, aprogrammable logic array, programmable array logic, a field programmablelogic array, a field programmable gate array, and other suitablehardware devices. With this type of implementation, program code 2218may be omitted because the processes for the different embodiments areimplemented in a hardware unit.

In still another illustrative example, processor unit 2204 may beimplemented using a combination of processors found in computers andhardware units. Processor unit 2204 may have a number of hardware unitsand a number of processors that are configured to run program code 2218.With this depicted example, some of the processes may be implemented inthe number of hardware units, while other processes may be implementedin the number of processors.

As another example, a storage device in data processing system 2200 isany hardware apparatus that may store data. Memory 2206, persistentstorage 2208, and computer readable media 2220 are examples of storagedevices in a tangible form.

In another example, a bus system may be used to implement communicationsfabric 2202 and may be comprised of one or more buses, such as a systembus or an input/output bus. Of course, the bus system may be implementedusing any suitable type of architecture that provides for a transfer ofdata between different components or devices attached to the bus system.Additionally, a communications unit may include one or more devices usedto transmit and receive data, such as a modem or a network adapter.Further, a memory may be, for example, memory 2206, or a cache, such asfound in an interface and memory controller hub that may be present incommunications fabric 2202.

The different illustrative embodiments can take the form of an entirelyhardware embodiment, an entirely software embodiment, or an embodimentcontaining both hardware and software elements. Some embodiments areimplemented in software, which includes but is not limited to forms suchas, for example, firmware, resident software, and microcode.

Furthermore, the different embodiments can take the form of a computerprogram product accessible from a computer usable or computer readablemedium providing program code for use by or in connection with acomputer or any device or system that executes instructions. For thepurposes of this disclosure, a computer usable or computer readablemedium can generally be any tangible apparatus that can contain, store,communicate, propagate, or transport the program for use by or inconnection with the instruction execution system, apparatus, or device.

The computer usable or computer readable medium can be, for example,without limitation an electronic, magnetic, optical, electromagnetic,infrared, or semiconductor system, or a propagation medium. Non-limitingexamples of a computer readable medium include a semiconductor or solidstate memory, magnetic tape, a removable computer diskette, a randomaccess memory (RAM), a read-only memory (ROM), a rigid magnetic disk,and an optical disk. Optical disks may include compact disk-read onlymemory (CD-ROM), compact disk-read/write (CD-R/W), and DVD.

Further, a computer usable or computer readable medium may contain orstore a computer readable or computer usable program code such that whenthe computer readable or computer usable program code is executed on acomputer, the execution of this computer readable or computer usableprogram code causes the computer to transmit another computer readableor computer usable program code over a communications link. Thiscommunications link may use a medium that is, for example withoutlimitation, physical or wireless.

A data processing system suitable for storing and/or executing computerreadable or computer usable program code will include one or moreprocessors coupled directly or indirectly to memory elements through acommunications fabric, such as a system bus. The memory elements mayinclude local memory employed during actual execution of the programcode, bulk storage, and cache memories which provide temporary storageof at least some computer readable or computer usable program code toreduce the number of times code may be retrieved from bulk storageduring execution of the code.

Input/output or I/O devices can be coupled to the system either directlyor through intervening I/O controllers. These devices may include, forexample, without limitation, keyboards, touch screen displays, andpointing devices. Different communications adapters may also be coupledto the system to enable the data processing system to become coupled toother data processing systems, remote printers, or storage devicesthrough intervening private or public networks. Non-limiting examples ofmodems and network adapters are just a few of the currently availabletypes of communications adapters.

The description of the different illustrative embodiments has beenpresented for purposes of illustration and description, and is notintended to be exhaustive or limited to the embodiments in the formdisclosed. Many modifications and variations will be apparent to thoseof ordinary skill in the art. Further, different illustrativeembodiments may provide different features as compared to otherillustrative embodiments. The embodiment or embodiments selected arechosen and described in order to best explain the principles of theembodiments, the practical application, and to enable others of ordinaryskill in the art to understand the disclosure for various embodimentswith various modifications as are suited to the particular usecontemplated.

What is claimed is:
 1. A method implemented by a computer, the methodcomprising: displaying, on a tangible display device, a pinboardincluding a first breadcrumb on a first area of the display device,wherein the first breadcrumb points to first data; displaying, on asecond area of the tangible display device different than the firstarea, a plurality of categories of information regarding the first data;and responsive to selecting a first category of the plurality ofcategories, performing both of: displaying details regarding the firstcategory in a third area of the tangible display device different thanthe first area and the second area, as well as updating the breadcrumbto point to second data relating to the first category, whereby fasteroperation of the computer is enabled by avoidance of intervening useractions.
 2. The method of claim 1, wherein the first category is atimeline and wherein the method further comprises: displaying, in thesecond area, one or more steps of a process related to the timeline. 3.The method of claim 2 further comprising: responsive to selecting aparticular step of the one or more steps, displaying an indication thatthe particular step is complete.
 4. The method of claim 2 furthercomprising: responsive to user input, adding another step to the one ormore steps.
 5. The method of claim 4, wherein the user is a first personother than a second person selecting the timeline.
 6. The method ofclaim 2 further comprising: displaying, in the second area, one or moresub-steps of the process under a first step of the one or more steps. 7.The method of claim 1 further comprising: displaying on a fourth area ofthe tangible display device, different than the first area, second area,and the third area, a name of the first category.
 8. The method of claim7 further comprising: responsive to selecting the fourth area,displaying to a user other categories in the one or more categories forselection.
 9. The method of claim 1, wherein the first data is regardingone of a person and a project.
 10. A computer comprising: a processor; abus in communication with the processor; a tangible display device incommunication with the processor; and a non-transitory computer readablestorage medium in communication with the processor, the non-transitorycomputer readable storage medium storing program code which, whenexecuted by the processor, performs a method and changes thenon-transitory computer readable storage medium and the tangible displaydevice, the program code comprising: program code for displaying, on thetangible display device, a pinboard including a first breadcrumb on afirst area of the display device, wherein the first breadcrumb points tofirst data; program code for displaying, on a second area of thetangible display device different than the first area, a plurality ofcategories of information regarding the first data; and program codefor, responsive to selecting a first category of the plurality ofcategories, performing both of: displaying details regarding the firstcategory in a third area of the tangible display device different thanthe first area and the second area, as well as updating the breadcrumbto point to second data relating to the first category, whereby fasteroperation of the computer is enabled by avoidance of intervening useractions.
 11. The computer of claim 10, wherein the first category is atimeline and wherein the program code further comprises: program codefor displaying, in the second area, one or more steps of a processrelated to the timeline.
 12. The computer of claim 11, wherein theprogram code further comprises: program code for, responsive toselecting a particular step of the one or more steps, displaying anindication that the particular step is complete.
 13. The computer ofclaim 11, wherein the program code further comprises: program code for,responsive to user input, adding another step to the one or more steps.14. The computer of claim 13, wherein the user is a first person otherthan a second person selecting the timeline.
 15. The computer of claim11, wherein the program code further comprises: program code fordisplaying, in the second area, one or more sub-steps of the processunder a first step of the one or more steps.
 16. The computer of claim10, wherein the program code further comprises: program code fordisplaying on a fourth area of the tangible display device, differentthan the first area, the second area, and the third area, a name of thefirst category.
 17. The computer of claim 16, wherein the program codefurther comprises: program code for, responsive to selecting the fourtharea, displaying to a user other categories in the one or morecategories for selection.
 18. The computer of claim 10, wherein thefirst data is regarding one of a person and a project.
 19. Anon-transitory computer readable storage medium storing program codewhich, when executed by a processor, performs a method and changes thenon-transitory computer readable storage medium and a tangible displaydevice, the program code comprising: program code for displaying, on thetangible display device, a pinboard including a first breadcrumb on afirst area of the display device, wherein the first breadcrumb points tofirst data; program code for displaying, on a second area of thetangible display device different than the first area, a plurality ofcategories of information regarding the first data; and program codefor, responsive to selecting a first category of the plurality ofcategories, performing both of: displaying details regarding the firstcategory in a third area of the tangible display device different thanthe first area and the second area, as well as updating the breadcrumbto point to second data relating to the first category, whereby fasteroperation of the computer is enabled by avoidance of intervening useractions.
 20. The non-transitory computer readable storage medium storingprogram code of claim 19, wherein the first category is a timeline andwherein the program code further comprises: program code for displaying,in the second area, one or more steps of a process related to thetimeline.